Debug trait
型のデバッグ出力を提供するためのtrait
開発者向けの情報を出力することを目的としている
デフォルトのデバッグ出力
フォーマットあり(インデントされた)デバッグ出力
定義
code:rs
pub trait Debug {
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}
実装例
code:rust
struct Point {
x: i32,
y: i32,
}
impl fmt::Debug for Point {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "Point {{ x: {}, y: {} }}", self.x, self.y)
}
}
さらっとしか書かれていない
Debugを実装したら{:?}で出せるのはわかったが、
実装してない時に{}で出せるものとはどう違うのか
何を出すのか、ただの名前をそのまま?